const defaultPointStyle = {
  'type': 'symbol',
  'paint': {
    'icon-color': '#8D8D8D',
    'icon-halo-color': 'rgba(226, 29, 29, 1)',
    'icon-halo-width': 100,
    // 'icon-halo-blur': 80,
    'icon-opacity': 1,
    'text-color': '#8D8D8D',
    'text-halo-color': '#000000',
    'text-halo-blur': 40,
    'text-opacity': 1
  },
  'layout': {
    'visibility': 'visible', // "none""visible"
    'icon-image': 'police-15',
    'icon-anchor': 'center', // "center", "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"
    'icon-offset': [0, 0],
    'icon-rotate': 0,
    'icon-ignore-placement': false,
    'icon-size': 1,
    'text-field': ['get', 'Name'],
    'text-anchor': 'center', // "center", "left", "right", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"
    'text-justify': 'auto', // "auto""left""center""right""center"
    'text-line-height': 1.2,
    'text-max-width': 50,
    'text-offset': [0, 0],
    'text-rotate': 0

  }
}

/**
 * 添加点图层
 * @param {map} map 地图对象
 * @param {string} id 图层id，唯一值
 * @param {string} sourceUrl 数据地址
 * @param {object} style 图层样式；可选属性
 */
export function addPoint(map, id, sourceUrl, style = copyStyle(defaultPointStyle)) {
  style.id = 'layer-' + id
  style.source = 'source-' + id

  map.addSource('source-' + id, {
    type: 'geojson',
    data: sourceUrl
  })
  map.addLayer(style)
}

function copyStyle(style) {
  return JSON.parse(JSON.stringify(style))
}

export function getPointStyle() {
  return copyStyle(defaultPointStyle)
}
